#include <iostream>
#include <string>
#include <unordered_map>
#define MAXN 1000
using namespace std;
int card[MAXN], N, M;

void solve();

int main() {
    cin >> N >> M;
    for (int i = 0; i < N; i++) cin >> card[i];
    solve();
    return 0;
}

/* 另外一种方式采用二分 */
void solve() {
    unordered_map<int, pair<int, int>> map;
    for (int i = 0; i < N; i++)
        for (int j = i; j < N; j++)
            map.insert({card[i] + card[j], {card[i], card[j]}});
    for (const auto x: map) {
        if (map.find(M - x.first) != map.end()) {
            cout << "Yes" << endl;
            return;
        }
    }
    cout << "No" << endl;
}